using JT808Protocol.Models.Attributes;
using System.Text.Json.Serialization;

namespace JT808Protocol.Models
{
    /// <summary>
    /// 消息体属性
    /// </summary>
    public class JT808MessageBodyProperties
    {
        /// <summary>
        /// 消息体长度
        /// </summary>
        [JsonPropertyName("消息体长度")] public int BodyLength { get; set; } = 0;

        /// <summary>
        /// 数据加密方式
        /// </summary>
        [JsonPropertyName("数据加密方式")] public EnumEncrytionType EncrytionType { get; set; }

        /// <summary>
        /// 是否分包
        /// </summary>
        [JsonPropertyName("是否分包")]
        [JsonBooleanString]
        public bool IsSplitPackage { get; set; }

        /// <summary>
        /// 版本标识 2019版本14位，2013此为保留项
        /// 如果此位值为1并且协议版本号为1，可以确定是2019或粤标
        /// </summary>
        [JsonPropertyName("版本标识")]
        [JsonBooleanString("支持2019或更高版本","不支持2019")]
        public bool IsSupport2019OrUpper { get; set; }
    }

    /// <summary>
    /// 数据加密方式
    /// </summary>
    [JsonConverter(typeof(JsonStringEnumConverter))]
    public enum EnumEncrytionType { 不加密, RSA }
}